The present invention relates generally to automatically injecting (communicating) data from a client to a remote application, and more particularly to a client data processing system maintaining, and automatically injecting (communicating), predefined application independent data to a remote data processing system.
The growth of the internet for commerce is quickly growing. Many web sites exist wherein a user of a web browser can navigate web pages of the web site to find products of interest. When the user determines products for purchase, the web site provides an interface for the user to provide information needed to accomplish the sale and delivery of the products(s). The information includes name, credit card, and delivery address. The user enters this information into the web site interface when ordering the product(s). Various technologies and methods exist for protecting the information from unauthorized use or access during transmission. If the user wants to purchase other products at other web sites, the same information must be burdensomely re-entered into the different web server interfaces. Re-entering the same information takes time, and becomes cumbersome when ordering products from many web sites.
One solution to this problem has been for the web site server to maintain information about the customers who have previously ordered from the site. For example, Amazon.com permits a profile to be saved for the user who orders from the Amazon.com site. This allows future orders by the user to be made without re-entering the same information again. A xe2x80x9ccookiexe2x80x9d saved at the user""s system from the last access to the web site provides a unique identifier to the user""s saved profile information. While this feature serves well for subsequent orders from the Amazon.com web site, it does not solve the problem of entering in the same data to other web sites. Furthermore, it may be a concern for the user that this information is obviously maintained by a company that may not safeguard the information in a desirable manner.
Microsoft Corporation made another solution to this problem. Microsoft provides a Microsoft Wallet interface in their Internet Explorer web browser. (Microsoft is a trademark of Microsoft Corp.) The Microsoft Wallet interface permits purchasing information to be maintained by the web browser at the user""s machine (i.e. user""s client). Web sites must be Microsoft Wallet enabled in order for the information to be used. Only the information that the Microsoft Wallet application requests is maintained by the interface. The data collected by the interface is specifically for making purchases, is directed by the purchasing application, and is application assigned. Another problem with this approach is that the client side (user""s system) and the server side are developed to pre-agreed data and the data types, thereby making the solution a poorly extendable platform for use with other data and/or other applications. Also, the Microsoft Wallet method sends purchasing data to a web site that is required to incorporate a Microsoft Wallet implementation. An open systems method is more desirable without dependency on a particular vendor, or on particular data to communicate between a client and a server. A method that does not embed data of the client/server negotiation into the developed logic is also desired.
There is a variety of other web sites that prompt users for information that is not purchase related. Company web sites provide interfaces for a user to provide resume information. Singles sites provide interfaces for a user to provide personal information. There are certainly web sites that exist where a user can manually enter all kinds of information. A method is needed for facilitating the providing of arbitrary user data to any, or all, of these web sites (i.e. application servers) without burdening the user of data re-entry. Preferably, the method should not assume anything about the syntax, or semantics, of the data provided to, or sought by, a particular web site.
Internet protocol phones (ip phones) are soon to replace the conventional circuit based telecommunication network system telephones. These telephones are becoming web clients. Automated telephone systems, such as a conventional Automated Response Unit (ARU), are being designed like a web server. Protocols between the ip phone and ARU will be similar, if not identical, to that which is between web clients and web servers today. In fact, internet protocol telephony (ip telephony) standards undergoing explosive growth are Session Initiation Protocol (SIP) and H.323. These protocols define call processing between telephone devices over an Internet Protocol (IP) network using conventional internet, network, and/or client/server methodologies. It is evident that telephones, desktop computers, and other intelligent devices will be able to talk with each other over the World Wide Web (WWW), and applications will be developed for enabling data communications between the systems. A method is needed for facilitating the providing of arbitrary user data to automated systems, ARUs, or the like, without burdening the caller from performing conventional telephone input to the ARUs. There is no reason to require a telephone user to use conventional telephone input such as voice, or keypad invocations, to a tree menu prompt interface. Multiple sessions can be accomplished between the ip telephone and other systems, or the same system, simultaneously. Also, the method should not assume anything about the syntax, or semantics, of the data provided to, or sought by, a particular automated system accessed by the ip telephone. Automated purchases via the ip telephone are only one example of use.
There are also wireless environments emerging where wireless phones have internet connectivity. The time is approaching where many varieties of handheld wireless devices (also infrared transmitting devices) will need means for defining data once for convenient re-communication to a plurality of entities, servers, or other clients. It is conceivable that there may be no electronic mail methodology desirable, if available, for the communication. A generic method is needed for facilitating the providing of arbitrary user data to any, or all, of the entities that such a device will want to communicate with, while allowing data to be defined once for re-transmission to a variety of remote applications. Preferably, the method should not assume anything about the syntax or semantics of the data provided to, or sought by, a particular entity.
The present invention enables a user of a client data processing system to automatically communicate (transmit) arbitrary amounts, and types, of application independent data to a remote data processing system through a minimal user action such as a single mouse selection, or a single keypad invocation. Client data processing system data comprises a set of data instances, each data instance including a data item, data type, and a user assigned label. The remote data processing system is interfaced through a minimal action solicitation prompt having associated application data rules (ADRs). ADRs comprise a set of sought data instances, each sought data instance including a label, acceptable data type(s), seek requirements, and validity criteria. Convenient user response to the prompt automatically communicates (transmits) the predefined application independent data to the remote data processing system for, or upon, matching labels of ADRs with labels of the application independent data. Acceptable data types, seek requirements, and validity criteria are also matched. The client""s data is reusable and can be maintained safely. The user defines a set of data once for automatically communicating (transmitting) to as many remote data processing systems as desired through the minimal user action. The user can also define a large superset of data wherein arbitrary subsets of the data may be sought by many various remote data processing systems. Upon responding to a minimal action solicitation prompt of the remote data processing system, a sought subset from the superset can be automatically communicated (transmitted) to the remote data processing system. An optional reconciliation of the transmission can be accomplished before transmission. The data can be of arbitrary syntax, or semantics, without causing redevelopment of the cooperating components of the client data processing system and the particular remote data processing system. Upon receipt of the client""s data to the remote data processing system, configurable customizable actions are performed.
It is one advantage of the present invention in enabling a user to define arbitrary amounts, and types, of data one time for automatic, and repeated, transmission to remote data processing systems.
It is another advantage of the present invention in enabling the communication of data from a client data processing system to a remote data processing system without burdening the user with time to enter, or re-enter, data to the interface of the remote data processing system.
Another advantage of the present invention is in defining a generic foundation for facilitating the communication of data by clients to arbitrary remote applications. The foundation is generic in supporting any requirements of future remote applications, as well as current various remote applications. Data communicated can be of arbitrary syntax and semantics.
Yet another advantage of the present invention is in permitting the safeguarding of the data at the client data processing system.
Yet another advantage of the present invention is in enabling a user for organizing sets of data for automatic transmission, as well as manage the sets of data for convenient activation when desired.
Another advantage of the present invention is in providing a better method over cutting and pasting data into an application of a remote data processing system, and/or re-entering the same previously entered data. Expedient client interaction to a remote data processing system is facilitated.
A further advantage of the present invention is to provide a system arid method for communicating data to an arbitrary remote data processing system device while preserving the capability for supporting an arbitrary type of application at the remote data processing system device.